﻿using System.Collections.Generic;
using Cms.Domain;

namespace Cms.Application.Admin.Views
{
    public interface IEditCustomAdminPageView : IAdminPageView, ITranslatable
    {
        int CustomAdminPageId { get; }

        string CurrentTab { get; }

        string Filename { get; set; }

        string Name { get; set; }

        bool ShowInMenu { get; set; }

        void SetCustomAdminPageId(int id);

        void SetAllowedAdministratorGroups(
            IList<AdministratorGroup> availableGroups,
            IList<AdministratorGroup> inheritedGroups,
            IList<AdministratorGroup> groups);

        IEnumerable<AdministratorGroup> GetSelectedAllowedAdministratorGroups();

        void SetDeniedAdministratorGroups(
            IList<AdministratorGroup> availableGroups,
            IList<AdministratorGroup> inheritedGroups,
            IList<AdministratorGroup> groups);

        IEnumerable<AdministratorGroup> GetSelectedDeniedAdministratorGroups();

        string XmlTranslations { get; set; }

        string Code { get; set; }

        string GetSourceCodeStatus();
    }
}